|
Mobile Agenten können in einem Agentensystem autonom arbeiten und
sind in der Lage, aus eigenem Antrieb von einem zu einem anderen Ort
zu migrieren. Ein Agent besteht aus einer Menge von Objekten, die
aus dem Agentenobjekt und dessen transitiver Hülle bezüglich der
Objektreferenzen besteht. Als Basis der Migration dient ein
Persistenzmechanismus, der einen Agenten in eine Repräsentation
überführt, die von der Implementation des Laufzeitsystems
unabhängig ist, und aus dieser alternativen Form den Agenten
wiedergewinnen kann.
Diese Arbeit untersucht, welche Algorithmen für den
Persistenzmechanismus geeignet sind. Der Algorithmus muß zyklische
Referenzen erkennen und auflösen. Ausgehend von einem einfachen
Ansatz, dessen Schwachpunkte analysiert werden, wird ein geeigneter
Algorithmus entwickelt.
Eine Anzahl von Möglichkeiten, wie der entwickelte Algorithmus in
das Mobile-Agenten-System "Mole" integriert werden kann,
werden auf ihre Vor- und Nachteile untersucht. Die gewählte
Integration sieht für jede Klasse zusätzlichen Quellcode vor, der
die Belegungen der relevanten Instanzenvariablen an den
Persistenzmechanismus ausgibt. Dieser zusätzliche Code kann für
eine vorliegende Klasse automatisch generiert werden.
Für die Sprache "Java" wurde der Generator und der
Persistenzverwalter implementiert. Dafür waren Anpassungen an die
Konzepte der Sprache nötig, um die Sichtbarkeitsbereiche von Daten
und Modulen zu unterstützen. Zeitmessungen belegen einen deutlichen
Geschwindigkeitsvorteil gegenüber dem in Mole bestehenden
Mechanismus.
|